import dayjs from '../miniprogram_npm/dayjs/index'
wx.utils = { //这样写的话，需要重新导入。  |或  wx.utils={ //向wx全局对象中追加自己封装的方法 
  //技巧：把方法都统一放在对象中管理，提高可维护性
  /**
   需求：基于wx.showToast进行二次封装
   效果：wx.utils.message('【提示消息内容】','success')
 */
  message(title, icon = "none") { //title显示内容   icon显示图标
    //内核？
    wx.showToast({
      title,
      icon,
      duiation: 2500, //时间
      mask: true //是否需要遮罩
    })
  },
  //技巧:将不同的部分当参数传入=>复用
  upload(filePath, formData) {
    /**
     * resolve(await或者then获取的数据)
     * reject(catch捕获的错误数据)
     */
    return new Promise((resolve, reject) => {
      wx.uploadFile({
        url: `${wx.baseURL}/upload`,//上传地址
        filePath,//上传图片地址
        name: 'file',//上传文件的key（后台定义的）
        //上传需要其他参数
        formData,
        //设置请求头
        header: {
          Authorization: getApp().state.token
        },
        //成功回调函数
        success: (result) => {
          console.log('上传结果', result.data);
          const res = JSON.parse(result.data)//类型转化
          //提示：
          setTimeout(() => {
            wx.utils.message(res.message)
          }, 1000)
          if (res.code === 1e4) {
            //上传成功
            // this.setData({
            //   'user.photo': res.data.url
            // })

            //通过resolve对外传递成功的结果
            resolve(res)
          } else {
            //上传失败
            //处理token过期
            if (res.code === 401) {
              // 读取当前历史栈
              const pageStack = getCurrentPages()
              // 取出当前页面路径，登录成功能跳转到该页面
              const currentPage = pageStack[pageStack.length - 1]
              wx.redirectTo({
                url: `/pages/login/index?redirectUrl=/${(currentPage.route)}`
              });
            }

            //通过reject对外传递成功的结果
            reject(res)
          }
        },
        fail: () => { }
      })
    })
  },
  formaTime(date, type = "YYYY-MM-DD") {
    return dayjs(date).format(type)
  }
}
